HAL SAI I/O operation function migration

This section provides information about the HAL SAI I/O operation function migration.

HAL SAI abort an ongoing transfer

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_Abort(SAI_HandleTypeDef *hsai);
hal_status_t HAL_SAI_Abort(hal_sai_handle_t *hsai);

HAL SAI pause DMA transfer

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_DMAPause(SAI_HandleTypeDef *hsai);
hal_status_t HAL_SAI_Pause_DMA(hal_sai_handle_t *hsai);

Related use case: Use case: HAL SAI Transmit DMA with Pause/Resume


HAL SAI resume DMA transfer

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_DMAResume(SAI_HandleTypeDef *hsai);
hal_status_t HAL_SAI_Resume_DMA(hal_sai_handle_t *hsai);

Related use case: Use case: HAL SAI Transmit DMA with Pause/Resume


HAL SAI stop DMA transfer

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_DMAStop(SAI_HandleTypeDef *hsai)

The same functionality can be achieved using the function :

hal_status_t HAL_SAI_Abort(hal_sai_handle_t *hsai)

Related use case: Use case: HAL SAI Receive DMA


HAL SAI disable RX mute detection

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_DisableRxMuteMode(SAI_HandleTypeDef *hsai);
hal_status_t HAL_SAI_DisableMuteRxDetection(hal_sai_handle_t *hsai);

HAL SAI unmute transmitter

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_DisableTxMuteMode(SAI_HandleTypeDef *hsai);
hal_status_t HAL_SAI_UnmuteTx(hal_sai_handle_t *hsai);

Related use case: Use case: HAL SAI Mute Tx


HAL SAI enable RX mute detection

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_EnableRxMuteMode(SAI_HandleTypeDef *hsai, SAIcallback callback, uint16_t counter);
hal_status_t HAL_SAI_EnableMuteRxDetection(hal_sai_handle_t *hsai, uint16_t counter);

Note

  • In HAL2, the mute detection callback is provided as the default weak callback HAL_SAI_MuteCallback, and the user can also provide his own callback using the HAL_SAI_RegisterMuteCallback function.


HAL SAI mute transmitter

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_EnableTxMuteMode(SAI_HandleTypeDef *hsai, uint16_t val);
hal_status_t HAL_SAI_MuteTx(hal_sai_handle_t *hsai, hal_sai_mute_mode_t mode);

Related use case: Use case: HAL SAI Mute Tx


HAL SAI receive

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_Receive(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size, uint32_t Timeout);
hal_status_t HAL_SAI_Receive(hal_sai_handle_t *hsai, void *p_data, uint32_t size_sample, uint32_t timeout_ms);

Related use case: Use case: HAL SAI Transmit/Receive in polling mode


HAL SAI receive using DMA

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_Receive_DMA(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size);
hal_status_t HAL_SAI_Receive_DMA(hal_sai_handle_t *hsai, void *p_data, uint32_t size_sample);

Related use case: Use case: HAL SAI Receive DMA


HAL SAI receive using interrupt

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_Receive_IT(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size);
hal_status_t HAL_SAI_Receive_IT(hal_sai_handle_t *hsai, void *p_data, uint32_t size_sample);

Related use case: Use case: HAL SAI Transmit/Receive IT


HAL SAI transmit

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_Transmit(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size, uint32_t Timeout);
hal_status_t HAL_SAI_Transmit(hal_sai_handle_t *hsai, void *p_data, uint32_t size_sample, uint32_t timeout_ms);

Related use case: Use case: HAL SAI Transmit/Receive in polling mode


HAL SAI transmit using DMA

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_Transmit_DMA(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size);
hal_status_t HAL_SAI_Transmit_DMA(hal_sai_handle_t *hsai, void *p_data, uint32_t size_sample);

Related use case: Use case: HAL SAI Transmit DMA with Pause/Resume


HAL SAI transmit using interrupt

HAL1

HAL2

HAL_StatusTypeDef HAL_SAI_Transmit_IT(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size);
hal_status_t HAL_SAI_Transmit_IT(hal_sai_handle_t *hsai, void *p_data, uint32_t size_sample);